// js的作用域
(function() {
  window.onload = function() {
    function add() {
      console.log('this is scope1 add function');
    }

    // 事件绑定
    if (document.getElementById('btn_add')) {
      document.getElementById('btn_add').addEventListener('click', add);
      // 1.对象.addEventListener("事件类型", 事件处理函数, false)
      // 谷歌&火狐支持，IE8不支持
      // 参数1：事件的类型----事件的名字，没有on。
      // 参数2：事件的处理函数----函数（命名函数，匿名函数）
      // 参数3：布尔类型，目前固定写死为false
      // 2.对象.attachEvent("有on的事件类型", 事件处理函数)
      // 谷歌&火狐不支持，IE8支持
      // 参数1：事件类型----事件名字，有on
      // 参数2：事件处理函数----函数（命名函数，匿名函数）

      // 添加多个绑定事件
      document.getElementById('btn_add').addEventListener('click', function() {
        console.log('add 2');
      });
      document.getElementById('btn_add').addEventListener('click', function() {
        console.log('add 3');
      });
    }

    // 事件委托
    // https://www.cnblogs.com/liugang-vip/p/5616484.html
    var oUl = document.getElementById('ul1');
    oUl.onclick = function(event) {
      var event = event || window.event;
      var target = event.target || event.srcElement;
      console.log(target);
      console.log(target.tagName.toLowerCase());
    };
  };
})();

function addEventLi(element, type, fn) {
  //为true则代表该方法在该浏览器可用
  if (element.addEventListener) {
    console.log('1');
    element.addEventListener(type, fn, false);
  } else if (element.attachEvent) {
    console.log('2');
    element.attachEvent('on' + type, fn);
  } else {
    console.log('3');
    element['on' + type] = fn;
  }
}
